/*
 * RSBool.h
 *
 *  Created on: 2010/03/17
 *      Author: alexandre
 */

#ifndef RSBOOL_H_
#define RSBOOL_H_

#include "RSValueElement.h"

namespace Realsphere {

    class RSBool : public Realsphere::RSValueElement {
        Q_OBJECT
        public:
            RSBool ( );
            RSBool ( const QString& rScopeId );
            RSBool ( const bool& rValue );
            RSBool ( const QString& rScopeId, bool& rValue );

            RSValueType                     ValueType () const;
            RSDataSize                      SizeOf () const;
            RSDataPointer                   DataPointer();
            QString                         ToString () const;

            bool                            Value () const;

        public slots:
            void                            SetValue ( const bool& rValue, bool rEmit = true );
            void                            SetValue ( const RSBool& rValue, bool rEmit = true );

        public:
            RSBool& operator=( const bool& rValue );
            RSBool& operator=( const RSBool& rValue );

        private:
            bool                            mValue;
    };

}

#endif /* RSBOOL_H_ */
